/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.dao;

import br.ufc.quixada.adrs.dao.config.PostGresMapConfig;
import br.ufc.quixada.adrs.model.Visitante;
import java.sql.SQLException;

/**
 *
 * @author Caio
 */
public class VisitanteDAO {

    public void insert(Visitante visitante) throws SQLException {
        Long id = getProxId();
        visitante.setId(id);
        PostGresMapConfig.getSqlMapClient().insert("addVisitante", visitante);
    }

    public void update(Visitante visitante) throws SQLException {
        PostGresMapConfig.getSqlMapClient().update("updateVisitante", visitante);
    }

    public void reativarVisit(Visitante visitante) throws SQLException {
        PostGresMapConfig.getSqlMapClient().update("reativarVisitante", visitante);
    }

    public void delete(Long id) throws SQLException {
        PostGresMapConfig.getSqlMapClient().delete("deleteVisitante", id);
    }

    public Visitante getByUsuarioId(Long id) throws SQLException {
        return (Visitante) PostGresMapConfig.getSqlMapClient().queryForObject("getVisitanteByUsuarioId", id);
    }

    public Visitante getByUsuarioIdToAivarConta(Long id) throws SQLException {
        return (Visitante) PostGresMapConfig.getSqlMapClient().queryForObject("getVisitanteByUsuarioIdToAtivaConta", id);
    }

    private Long getProxId() throws SQLException {
        Long id = (Long) PostGresMapConfig.getSqlMapClient().queryForObject("getMaxVisitanteId");
        if (id == null) {
            id = 0L;
        }
        return id + 1L;
    }
}
